home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / haeberli / autopaint / modpos.c < prev    next >
C/C++ Source or Header  |  1994-08-01  |  1KB  |  51 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #include "math.h"
  18. #include "vect.h"
  19. #include "canvas.h"
  20.  
  21. static float posdelta;
  22. static float griddelta;
  23.  
  24. setposdelta(mag)
  25. float mag;
  26. {
  27.     posdelta = mag;
  28. }
  29.  
  30. setgriddelta(space)
  31. float space;
  32. {
  33.    griddelta = space;
  34. }
  35.  
  36. modpos(pos,rscale)
  37. vect *pos;
  38. float rscale;
  39. {
  40.     float circx, circy;
  41.  
  42.     rscale = 0.50*rscale;
  43.     getcircpos(&circx,&circy);
  44.     pos->x += rscale*posdelta*circx;
  45.     pos->y += rscale*posdelta*circy;
  46.     if(griddelta>0.0) {
  47.     pos->x = griddelta*ffloor((pos->x/griddelta)+0.5);
  48.     pos->y = griddelta*ffloor((pos->y/griddelta)+0.5);
  49.     }
  50. }
  51.